package cn.org.timespace.ons.service.base;

import java.util.ArrayList;
import java.util.List;

import cn.org.timespace.ons.action.base.MachinesApplyModel;
import cn.org.timespace.ons.util.pager.Pager;
import cn.org.timespace.ons.vo.base.AppleServer;
import cn.org.timespace.ons.vo.base.MachinesApply;
import cn.org.timespace.ons.vo.base.Options;

public interface MachinesApplyService {

	//组合查询
	public List<MachinesApply> findByCondition(MachinesApplyModel model);
	
	public List<Object> findByCondition(MachinesApplyModel model,Pager p);
	
	public List<Object> findByMachineId(String machineId,Pager p);
	
	public List<Object> findByStartName(String startName , Pager p);
	
	public MachinesApply findById(java.lang.String id) ;
	
	public void update(MachinesApply instance);
	
	public boolean save(MachinesApply transientInstance) ;

	public void delete(MachinesApply persistentInstance) ;
	
	//根据条件列出我的审核或者申请
	public List<Object> findApplyAndAuditByCondition(MachinesApply model,Pager p);
	//根据应用平台ID查找信息终端
	public List<Object> findByApplyId(String machineId,Pager p);
	
	//先根据机器id显示列表，再根据名称去条件查询
	public List<AppleServer> findByMsidAndName(String id , String name, Pager p);
	
	//先根据应用id显示列表，再根据名称条件查询
	public List<Options> findByAppIdAndName(String asid,String name,Pager p);
	//可选应用
	public List<Object> findByApplyByAudit(String msid ,String theIdMachine,String userName);
	//已选应用，根据信息终端ID对应，一个信息终端可以对应多个应用
	public List<Object> findByApplyByAsAudit(String mid,String theIdMachine);
	
	//根据信息终端ID删除
	public void deleteByMachinesId(String  machinesId) ;
	
	/**
	 * 根据信息终端的组合ID,查询出已经申请的应用
	 * @param machinesID
	 * @return
	 */
	public ArrayList<AppleServer> findAppleServerByMachinesID(String machinesID);
	//新增列出可选应用
	public List<Object> findByApplyByAuditNew(String theIdMachine,String userName);
	
	//下线前判断是否还有应用
	public String findByMsid(String id );
	
	//下线前判断是否还有终端
	public String findByAsid(String asid);
}
